Content driven interface

ABSTRACT

One or more embodiments of providing a content driven interface are provided herein. A storage component may house one or more programming data portions. Respective programming data portions may be associated with programming data for one or more time intervals, program names, and corresponding source content provider information. A display component may render one or more program suggestions based on a current time and one or more of the programming data portions. Respective program suggestions may be rendered based such that corresponding source content provider information is hidden. A management component may determine the current time and receive a user selection of a program suggestion of the one or more program suggestions. A communication component may transmit one or more signals based on the user selection of the program suggestion and corresponding source content provider information.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Patent Application, Ser. No. 62/014,952 entitled “UNIVERSAL REMOTE CONTROL”, filed on Jun. 20, 2014; the entirety of the above-noted application is incorporated by reference herein.

BACKGROUND

Generally, remote controls and programming guides for media systems operate in a manner where channels are arranged in a numerical order (e.g., in ascending or descending order, by channel number), and a user may browse through electronic program guides (EPG) or EPG data in that fashion. However, this may not be desirable when a user desires to view specific content quickly or likes to jump from a high numbered channel to a low number channel, for example.

BRIEF DESCRIPTION

This brief description is provided to introduce a selection of concepts in a simplified form that are described below in the detailed description. This brief description is not intended to be an extensive overview of the claimed subject matter, identify key factors or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

According to one or more aspects, a system for providing a content driven interface, may include a storage component housing one or more programming data portions, wherein respective programming data portions may be associated with programming data for one or more time intervals, program names, and corresponding source content provider information. The system may include a display component rendering one or more program suggestions based on a current time and one or more of the programming data portions, wherein respective program suggestions may be rendered based such that corresponding source content provider information may be hidden. The system may include a management component determining the current time and receiving a user selection of a program suggestion of the one or more program suggestions. The system may include a communication component transmitting one or more signals based on the user selection of the program suggestion and corresponding source content provider information.

The system may include an application component receiving user profile data, wherein the storage component receives one or more of the programming data portions based on the user profile data. The system may be implemented within a set top box or a remote control. One or more of the program suggestions may include a progress bar and a program name. The communication component may transmit a batch of one or more of the signals based on a current state of a media system. The display component may render one or more controls associated with operation of a media system.

The display component may render one or more of the controls associated with the media system concurrently with one or more of the program suggestions. The display component may render one or more of the controls associated with the media system in a control portion. The display component may render one or more of the program suggestions in a program suggestion portion, wherein the program suggestion portion may be rendered in an upper portion of a display of the display component and the control portion may be rendered in a lower portion of the display.

In one or more embodiments, the control portion and the program suggestion portion may each occupy one half of the display. The display component may render a first set of program suggestions based on a first category or a first genre for respective program suggestions. The display component may render a second set of program suggestions based on a second category or a second genre for respective program suggestions in response to a user input. In one or more embodiments, the user input may be a swipe gesture, a drag gesture, or a tap gesture.

According to one or more aspects, a method for providing a content driven interface, may include storing one or more programming data portions, wherein respective programming data portions may be associated with programming data for one or more time intervals, program names, and corresponding source content provider information, determining a current time, rendering one or more program suggestions based on the current time and one or more of the programming data portions, wherein respective program suggestions may be rendered based such that corresponding source content provider information may be hidden, receiving a user selection of a program suggestion of the one or more program suggestions, and transmitting one or more signals based on the user selection of the program suggestion and corresponding source content provider information.

In one or more embodiments, one or more of the program suggestions may include a progress bar and a program name. The method may include transmitting a batch of one or more of the signals based on a current state of a media system. The method may include rendering one or more controls associated with operation of a media system. The method may include rendering one or more of the controls associated with the media system concurrently with one or more of the program suggestions. The method may include rendering one or more of the controls associated with the media system in a control portion, rendering one or more of the program suggestions in a program suggestion portion, wherein the program suggestion portion may be rendered in an upper portion of a display and the control portion may be rendered in a lower portion of the display. In one or more embodiments, the control portion and the program suggestion portion may each occupy one half of the display.

According to one or more aspects, a system for providing a content driven interface, may include a storage component housing one or more programming data portions, wherein respective programming data portions may be associated with programming data for one or more time intervals, program names, and corresponding source content provider information. The system may include a display component rendering one or more program suggestions based on a current time and one or more of the programming data portions, wherein respective program suggestions may be rendered based such that corresponding source content provider information may be hidden. The system may include a management component receiving a user selection of a program suggestion of the one or more program suggestions. The system may include a communication component transmitting one or more signals based on the user selection of the program suggestion and corresponding source content provider information, wherein the communication component may pause for a predetermined time period between transmission of one or more of the signals.

The following description and annexed drawings set forth certain illustrative aspects and implementations. These are indicative of but a few of the various ways in which one or more aspects may be employed. Other aspects, advantages, or novel features of the disclosure will become apparent from the following detailed description when considered in conjunction with the annexed drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the disclosure are understood from the following detailed description when read with the accompanying drawings. Elements, structures, etc. of the drawings may not necessarily be drawn to scale. Accordingly, the dimensions of the same may be arbitrarily increased or reduced for clarity of discussion, for example.

FIG. 1 is an illustration of an example component diagram of a remote system for providing a content driven interface, according to one or more embodiments.

FIG. 2 is an illustration of an example flow diagram of a method for providing a content driven interface, according to one or more embodiments.

FIG. 3 is an illustration of an example remote system for providing a content driven interface, according to one or more embodiments.

FIG. 4 is an illustration of an example remote system for providing a content driven interface, according to one or more embodiments.

FIG. 5 is an illustration of an example remote system for providing a content driven interface, according to one or more embodiments.

FIG. 6 is an illustration of example content driven interfaces, according to one or more embodiments.

FIG. 7 is an illustration of an example computer-readable medium or computer-readable device including processor-executable instructions configured to embody one or more of the provisions set forth herein, according to one or more embodiments.

FIG. 8 is an illustration of an example computing environment where one or more of the provisions set forth herein are implemented, according to one or more embodiments.

DETAILED DESCRIPTION

Embodiments or examples, illustrated in the drawings are disclosed below using specific language. It will nevertheless be understood that the embodiments or examples are not intended to be limiting. Any alterations and modifications in the disclosed embodiments, and any further applications of the principles disclosed in this document are contemplated as would normally occur to one of ordinary skill in the pertinent art.

For one or more of the figures herein, one or more boundaries, such as boundary 814 of FIG. 8, for example, may be drawn with different heights, widths, perimeters, aspect ratios, shapes, etc. relative to one another merely for illustrative purposes, and are not necessarily drawn to scale. For example, because dashed or dotted lines may be used to represent different boundaries, if the dashed and dotted lines were drawn on top of one another they would not be distinguishable in the figures, and thus may be drawn with different dimensions or slightly apart from one another, in one or more of the figures, so that they are distinguishable from one another. As another example, where a boundary is associated with an irregular shape, the boundary, such as a box drawn with a dashed line, dotted lined, etc., does not necessarily encompass an entire component in one or more instances. Conversely, a drawn box does not necessarily encompass merely an associated component, in one or more instances, but may encompass a portion of one or more other components as well.

The following terms are used throughout the disclosure, the definitions of which are provided herein to assist in understanding one or more aspects of the disclosure.

As used herein, programming data or ‘data’ may include program guide data, television or media programming data, TV program data, electronic programming data, electronic program guide (EPG) data, etc.

As used herein, a ‘remote’ or remote system may include a remote control, a remote control device, a television remote, a multimedia remote, a mobile device, a tablet, a smartphone, or any other device equipped with transmitters which provide signals for controlling other devices, etc.

As used herein, a media system may include a television, a media center, a display, an entertainment system, etc.

As used herein, the term “infer” or “inference” generally refer to the process of reasoning about or inferring states of a system, a component, an environment, a user from one or more observations captured via events or data, etc. Inference may be employed to identify a context or an action or may be employed to generate a probability distribution over states, for example. An inference may be probabilistic. For example, computation of a probability distribution over states of interest based on a consideration of data or events. Inference may also refer to techniques employed for composing higher-level events from a set of events or data. Such inference may result in the construction of new events or new actions from a set of observed events or stored event data, whether or not the events are correlated in close temporal proximity, and whether the events and data come from one or several event and data sources.

FIG. 1 is an illustration of an example component diagram of a remote system for providing a content driven interface, according to one or more embodiments. Here, in FIG. 1, a backend system 110 may transmit programming data to the remote system 120 for the remote system 120 to cache or store. In one or more embodiments, communication between the backend system 110 and the remote system 120 may occur over a network 130, through a cable box 140, etc. It will be appreciated that the backend system 110 and remote system 120 may communicate indirectly, through multiple layers or devices, intermediary devices, according to one or more embodiments. For example, the backend system 110 and remote system 120 may communicate through a cable box 140, local area network (LAN), wide area network (WAN), the internet, etc. The communication component 172 may be implemented with infrared sensors/detectors, wireless antennas/receivers, network cards, etc. Regardless, the backend system 110 and the communication component 172 of the remote system 120 may be configured to communicate, such as using JSON, for example.

The remote system 120 may include an application component 162, a management component 164, a display component 166, a communication component 172, a storage component 174, and a power component 176. Further, the remote system 120 may issue commands or orders via signals to a media system 150, such as a television or a media center, for example. Here, the communication component 172 of the remote system 120 may transmit remote commands to a media system 150 or a device associated with the media system 150, such as a cable box 140, receiver, television, etc. The remote system 120 may enable playback of selected content on a media system via a single user selection or user input, which may initiate transmission of multiple signals to facilitate such playback.

In one or more embodiments, the application component 162 may run one or more applications or cause the display component 166 to generate one or more interfaces. For example, the application component 162 may run a setup application which prompts a user for user profile data by having the display component 166 render a user interface (UI) prompting the user for such user profile data. For example, the application component 162 may cause the display component 166 to render an interface that gathers the user's zip code, cable provider, content provider, gender, age, favorites, etc. In other embodiments, the application component 162 may monitor automatically and detect the content provider. Further, the application component may monitor the remote system 120, the backend system 110, or the media system 150 for user profile data.

For example, the application component 162 may monitor or detect one or more aspects or types of user profile data, such as favorites, recently watched channels, recently watched programming, program history, etc. User profile data may include zip code, cable provider, content provider, gender, age, favorite, recently watched channels, recently watched programming, program history, etc. The application component 162 may infer favorites as user profile data in an automatic fashion, such as by monitoring which shows are watched or which channels are most frequently accessed, etc. In this way, the application component 162 may receive or gather user profile data.

The communication component 172 of the remote system 120 may receive programming data portions which were divided, sliced, parsed, processed, formatted, etc. on a backend system 110. The communication component 172 may receive one or more programming data portions from the backend system 110. Accordingly, the communication component 172 of the remote system 120 enables interplay, communication, or interaction to occur between the remote system 120 and a backend system 110 to seamlessly update content, such as programming data or programming data portions such that the remote system 120 may maintain or store relevant programming schedules or recommendations even when no internet connection or Wi-Fi connection is available, connectivity to a cable box 140 or network 130 is lost, etc.

The storage component 174 may cache, download, house, store one or more programming data portions, which may be indicative of programming data, an electronic programming schedule, electronic program guide (EPG) data, recommendations for related media content, etc. In other words, the storage component 174 enables a remote system 120 to hold or store relevant programming data associated with a predetermined time period (e.g., fourteen days into the future), without loading from the network 130 or internet each time the user accesses a program guide function on the remote system 120 or a recommended function on the remote system 120.

Regardless, the storage component may cache programming data based on time, location, content provider (cable provider, satellite provider, subscription to streaming services, etc.), user preferences, etc. In one or more embodiments, the storage component 174 may achieve this by receiving one or more programming data portions from a backend system 110. Further, the storage component 174 may receive, cache, download, house, store, etc. one or more of the programming data portions based on user profile data, such as user profile data received by the application component 162.

Programming data portions may be associated with different program schedules or programming data for different days across different channels or different content providers. Programming data portions may also be associated with programming data for one or more time intervals, program names, and corresponding source content provider information. The remote system 120 may begin to view or preview the locally cached programming data once a first programming data portion is received. Alternatively, if no programming data portion is available, the communication component 172 may access the network 130 or cable box 140 for programming data.

The management component 164 may determine a current time or manage a clock which may be utilized to sync program schedules using one or more of the programming data portions. The display component 166 may include a display portion and an input portion, such as a touch screen. The input portion of the display component 166 may receive one or more user inputs. The input portion may enable a user to interact with graphic elements or content items of the UI by providing the remote system 120 with different types of user inputs. In one or more embodiments, one or more of the buttons of the input portion may be implemented as soft buttons within one or more of the touch sensitive portions. In this way, these ‘soft’ buttons may be defined by arbitrary boundaries within a touch sensitive or pressure sensitive portion. In one or more embodiments, a user could make a selection with a soft button by double tapping the corresponding touch or pressure sensitive portion or by providing a multi-finger user input, for example.

The management component 164 may generate one or more program suggestions based on the user profile data, user history, age of a user, zip code of a user, etc. The management component 164 may receive a user selection of a program suggestion of the one or more program suggestions. Program suggestions may be rendered by the display component 166 to include a progress bar and a program name. For example, a user selection may be received when a user touches a program suggestion or a recommended icon. In one or more embodiments, if the same content is available between two different content providers, the management component 164 may select the higher quality (e.g., digital antenna over cable, due to cable signal compression, etc.) one or the content provider associated with less commercials, etc.

Further, the management component 164 may receive one or more user inputs. For example, the display component 166 may be a touchscreen which may be configured to receive user inputs, such as a swipe gesture, a drag gesture, or a tap gesture, etc. When a user selects a piece of content from the user interface, the communication component 172 may transmit one or more signals based on the user selection of the program suggestion and corresponding source content provider information. Further, these signals may be transmitted based on a current state of a media system. For example, if a television is off, the communication component 172 may transmit an on signal to the television, followed by a predetermined delay period, followed by a change in input (e.g., HDMI1 to CABLE, etc.), followed by the corresponding source content channel number, as determined from the programming data portions of a selected program suggestion. In this way, the communication component may transmit a batch of one or more of the signals based on a current state of a media system (e.g., on or off, current input state, HDMI, DVD, cable, etc.). Further, by inserting predetermined delays (e.g., based on make or model of a media system or one or more components of the media system), this enables media systems to react in time.

Regardless, the communication component 172 may transmit signals based on user selection, programming data portion, and current media system state. An example sequence may include a power television on signal, a first predetermined delay period, a change to appropriate input signal (recorded media, etc.) based on current state of media system 150, a second predetermined delay period, a change to appropriate channel signal, a third predetermined delay period, and/or a start content signal (e.g., for programming which is streaming or on-demand, etc.) or a watch recommended content signal. In this way, a user merely selects a desired piece of programming content (e.g., via a program suggestion, a search result, etc.), and the communication component 172 changes TV inputs and places the set top box in the correct channel to displaying corresponding content.

In one or more embodiments, the management component 164 may enter a test mode, where the predetermined delay period is incrementally shorted to ‘test’ the limits of efficiency for the batch of signals. Here, a batch of signals may be sent or transmitted and the user may be prompted to respond with whether the batch of signals achieved a change in a state of the media system 150, such as by changing a channel, for example. If the user answers that the media system 150 changed in state or in channel, the management component 164 may continue reducing the predetermined delay period. If the user response indicates that no change in state occurred, then the predetermined delay period may be increased. In other embodiments, the predetermined delay period may be user adjustable, and thus, signals may be customizable. Further, the length of signals may be tested (and reduced accordingly) as well.

For example, the timing between what “numbers” are sent to a TV or cable box 140 can be customized based on the manufacturer of the TV or cable box. For an older TV, the code for channel “337” may be “3” wait a few milliseconds, then another “3” wait, and then the “7”. In contrast, for a new television it is really quick—“3”, “3” and “7”. In other words, the wait period for the older TV may be longer than the wait period for the new television.

As an example, instead of pressing a numerical button or a “button” on a display having a channel on it, (e.g., the user presses the content or show he or she wants to watch). The remote system 120 then translates this input into a signal that is sent wirelessly to another device (e.g. cable box 140 that is already programmed to receive its own signals) as a batch of signals which may include one or more predetermined delay periods therebetween, for example. As a result, a single user input may cause the communication component 172 to provide multiple signals with delays in between. In this way, selection may become more about what a user desires to watch rather than what channel to watch.

The management component 164 may receive user approval or disapproval (e.g., a thumbs up or down on recommendations) for one or more of the program suggestions, and use this approval or disapproval to provide further or future program suggestions. Further, the management component 164 may provide program suggestions based on anticipated use.

The management component 164 may determine one or more subsets of programming data portions to download or cache based on storage space available, user interests, user profile data, etc. For example, if a user typically watches sports, merely programming data portions for channels associated with sports or sports related programming data portions may be downloaded or cached on the storage component 174.

In one or more embodiments, the power component 176 may place the remote system 120 or remote device in a sleep mode automatically or based on a period of inactivity which exceeds an inactivity threshold (e.g., no buttons pushed or interactivity with a user for sixty minutes, etc.). In other words, onboarding or downloading of programming data portions may occur during a sleep phase of the remote system 120, or during periods when the remote system 120 is not in use.

The application component 162 may provide a user with the ability to search for programming on their remote system 120. For example, users may be able to search content locally stored on the remote system 120, such as the programming data or one or more of the programming data portions (e.g., including the next fourteen days of programming). If the desired content is unavailable, but an Internet connection or a connection to a cable box 140 is available, the application component 162 may initiate a search via the internet or on the cable box 140. In one or more embodiments, the application component 162 may prioritize searching on the cable box 140 over searching on the internet when both connections are available. The application component 162 may present search results based on type of content, such as by grouping sports, films, by age appropriateness, by parental rating, etc. Users may be able to use filters provided by the application component 162 to narrow search results from the application component 162. The application component 162 may enable searching by pictures.

In one or more embodiments, the display component 166 may render a user interface (UI) which enables a user to view programming data or recommended programming data without the need for a connection to the internet, a connection to a cable box 140, television, etc. in a content driven manner, without presenting channel numbers, for example. The display component 166 may render a user interface which enables a user to scroll through different channels by swiping up and down and view different programming (e.g., into the future or at different time slots) associated with respective channels by swiping left and right, for example.

In one or more embodiments, the display component 166 may render a user interface to include a date, a current time, a battery level associated with the remote system 120, etc. The user interface enables users to select content or search for content. In one or more embodiments, the display component 166 may render one or more program suggestions based on one or more of the programming data portions and user profile data. Thus, the remote system 120 may provide a recommendation based on a cable package of a user and the programming schedule and current time (e.g., a regional baseball game is available right now). The display component 166 may render these program suggestions to include a preview icon, a channel, a program name, a program time, a current progress associated with the program, etc. The display component 166 may render one or more program suggestions based on a current time (e.g., provided by the management component 164) and one or more of the programming data portions. A program suggestion may then be rendered via the display component 166 such that corresponding source content provider information may be hidden or program suggestions may be provided based only on content or available content. In other words, the display component 166 may omit information such as a station name, channel number, etc., and merely render content related information, such as a content title, a graphic element preview, such as a gif or other animated scene.

Program suggestions may be provided ahead of time (e.g., not based on the current time) such that a state of the media system 150 is switched (e.g., based on a batch of transmitted signals) at a future time when the selected content is available. In other words, for ahead of time recommendations, the management component 164 may provide auto switching to selected programming at that time (e.g., allow user to watch something else and automatically switch over at 7:05 pm).

The display component 166 may render one or more controls associated with operation of a media system. For example, one or more controls may include a soft button which enables the user to select the content. In other embodiments, the user may select the content by pressing the graphic element preview itself. Other controls or control graphic elements may include volume controls, power controls, switching input controls, etc. The display component 166 may render one or more of these controls associated with the media system concurrently with one or more of the program suggestions.

When a program suggestion is selected by a user, the communication component 172 may transmit a signal to a cable box 140, television, receiver, etc. associated with activating the program suggestion. For example, if the television is off, the communication component 172 may provide a power signal to the television, pause for a predetermined time period, change to an input (e.g., cable, antenna, etc.) associated with the program suggestion, and select the appropriate channel or other selection for the program suggestion to otherwise begin playback of the corresponding content. In other embodiments, when the program suggestion is selected, a show or program detail page may be rendered.

In one or more embodiments, the communication component 172 of the remote system 120 may transmit a signal associated with the display component 166 to a media system 150 such that the output or rendering of the display component 166 is mirrored or rendered on the media system 150, rather than the display component 166 of the remote system 120. Accordingly, a user could then use the remote 120 to operate a content driven interface rendered on the media system 150. As mentioned, the content driven interface rendered on the media system 150 may be mirrored from what is being displayed on the display component 166 or may be rendered on the media system 150 in lieu of being rendered on the display component 166. In this way, a content driven interface may be provided on other devices, such as a set top box of a media system 150, for example.

FIG. 2 is an illustration of an example flow diagram of a method 200 for providing a content driven interface, according to one or more embodiments. At 202, a user profile may be setup. At 204, a programming data portion may be accessed. At 206, a current time may be determined. At 208, program suggestions may be rendered based on the current time and programming data portion. Here, the rendering may be based only on content. For example, no channel numbers would be rendered in the interface. At 210 a user selection of a program suggestion may be received. At 212, a signal may be transmitted, where the signal corresponds to the user selection, programming data portion, and current media input or state.

FIG. 3 is an illustration of an example remote system for providing a content driven interface 300, according to one or more embodiments. One or more program suggestions (e.g., 310, 320, 330, 340, etc.) may be rendered by a display component 166. The display component 166 may also render a current remote system status 350 (e.g., battery level), date and time 360, etc. Respective program suggestions 310, 320, 330, etc. may each include graphic elements, such as channel names (e.g., 310C, 320C, 330C), identifiers (e.g., 310E, 320E, 330E), program names (e.g., 310B, 320B, 330B), progress bars (e.g., 310D, 320D, 330D), etc. These graphic elements may be determined or rendered based on a current time, user profile data, and programming data portions stored on the remote system 120. Further, soft buttons or graphic elements 310A, 320A, 330A, etc. may be provided. In one or more embodiments, selection of these graphic element may provide a future view as to what is on that corresponding channel next or in the next time period. In other embodiments, selection of these graphic elements may bring up a detailed description of the corresponding program.

If a user presses and drags up and down, additional program recommendations (e.g., 340, and more) may be presented. If the user swipes right or left, different time frames may be presented or different genres of recommendations may be presented.

FIG. 4 is an illustration of an example remote system for providing a content driven interface 400, according to one or more embodiments. Here, the display component 166 may render one or more of these controls (e.g., 422A, 422B, 424A, 424B, 426A, 426B, etc.) associated with the media system concurrently with one or more of the program suggestions. The display component 166 may render one or more of these controls associated with the media system in a control portion (e.g., the lower ‘half’). The display component 166 may render one or more of the program suggestions in a program suggestion portion (e.g., the upper ‘half’). Thus, the program suggestion portion is rendered in an upper portion of a display of the display component 166 and the control portion is rendered in a lower portion of the display. In one or more embodiments, the control portion and the program suggestion portion may each occupy approximately or substantially one half of the display.

At 402, a search bar or graphic element is provided, which when selected, enables a user to search for content associated with programs, channels, actors, genres, etc. As seen in the upper portion of the display, a program recommendation is provided, including a program name 404. In one or more embodiments, a single program recommendation is provided at a time. In other embodiments, multiple program recommendations may be provided. By swiping right or left, different controls may be presented. For example, on the left, a first set of controls include channel changing controls 422A, a what's on control 424A, favorite channels 426A, a guide button, a TV remote button, etc. When the UI receives a swipe to the right or left, a different set of controls may be rendered by the display component 166, such as a setup control 422B, receiver control 424B, TV control 426B, game control, settings, etc.

FIG. 5 is an illustration of an example remote system for providing a content driven interface 500, according to one or more embodiments. In FIG. 5, a program suggestion is provided. The program suggestion includes a current time 504, a content provider or content source identifier 502, a back button 506 (e.g., hitting this brings up a list of recommendations), a program name 508, a channel name 510, a parental rating 512, a progress bar 514, a watch now 516 control, a reminder control 522, a favorite control 524, and a record control 526. Pressing any one of the corresponding controls may cause the communication component 172 to transmit corresponding signals to the cable box 140 or the media system 150.

FIG. 6 is an illustration of example content driven interfaces, according to one or more embodiments. Here, different categories of displays may be rendered. For example, the display component 166 may render a first set of program suggestions based on a first category or a first genre for respective program suggestions. The display component 166 may render a second set of program suggestions based on a second category or a second genre for respective program suggestions in response to a user input (e.g., swipe, tap, etc.). Categories may include the news, movies, sports, etc.

For example, the remote system 120 may be in a first state where recommendations associated with a movies genre 606B are presented. Here, recommendations of the movies genre 608B may include one or more graphic elements, such as 612B, progress bar 614B and channel name 610B. Pressing or selecting graphic element 612B may cause the remote system 120 to provide additional details regarding program recommendation 608B.

If a user swipes right from the movies genre 606B, recommendations associated with a news genre 606C are presented. Here, recommendations of the news genre 608C may include one or more graphic elements, such as 612C, progress bar 614C and channel name 610C. Pressing or selecting graphic element 612C may cause the remote system 120 to provide additional details regarding program recommendation 608C.

If a user swipes right again, from the news genre 606C, recommendations associated with a sports genre 606D are presented. Here, recommendations of the sports genre 608D may include one or more graphic elements, such as 612D, progress bar 614D and channel name 610D. Pressing or selecting graphic element 612D may cause the remote system 120 to provide additional details regarding program recommendation 608D.

If a user swipes right again, from the sports genre 606D, recommendations associated with the movies genre 606B are presented. Conversely, if a user swipes left from the movies genre 606B, recommendations associated with the sport genre 606A are presented. Here, recommendations of the sports genre 608A may include one or more graphic elements, such as 612A, progress bar 614A and channel name 610A. Pressing or selecting graphic element 612A may cause the remote system 120 to provide additional details regarding program recommendation 608A. In this way, a user may swipe to cycle through genre program recommendations.

Regardless of the state of the remote, certain graphic elements, such as the time 604A, 604B, 604C, or 604D may be presented or rendered. Additionally, other graphic elements may be provided as well, such as the “Watch TV” graphic element 602A, 602B, 602C, or 602D.

One or more embodiments may employ various artificial intelligence (AI) based schemes for carrying out various aspects thereof. One or more aspects may be facilitated via an automatic classifier system or process. A classifier is a function that maps an input attribute vector, x=(x1, x2, x3, x4, xn), to a confidence that the input belongs to a class. In other words, f(x)=confidence (class). Such classification may employ a probabilistic or statistical-based analysis (e.g., factoring into the analysis utilities and costs) to prognose or infer an action that a user desires to be automatically performed.

A support vector machine (SVM) is an example of a classifier that may be employed. The SVM operates by finding a hypersurface in the space of possible inputs, which the hypersurface attempts to split the triggering criteria from the non-triggering events. Intuitively, this makes the classification correct for testing data that may be similar, but not necessarily identical to training data. Other directed and undirected model classification approaches (e.g., naïve Bayes, Bayesian networks, decision trees, neural networks, fuzzy logic models, and probabilistic classification models) providing different patterns of independence may be employed. Classification, as used herein, may be inclusive of statistical regression utilized to develop models of priority.

One or more embodiments may employ classifiers that are explicitly trained (e.g., via a generic training data) as well as classifiers which are implicitly trained (e.g., via observing user behavior, receiving extrinsic information). For example, SVMs may be configured via a learning or training phase within a classifier constructor and feature selection module. Thus, a classifier may be used to automatically learn and perform a number of functions, including but not limited to determining according to a predetermined criteria.

Still another embodiment involves a computer-readable medium including processor-executable instructions configured to implement one or more embodiments of the techniques presented herein. An embodiment of a computer-readable medium or a computer-readable device devised in these ways is illustrated in FIG. 7, wherein an implementation 700 includes a computer-readable medium 708, such as a CD-R, DVD-R, flash drive, a platter of a hard disk drive, etc., on which is encoded computer-readable data 706. This computer-readable data 706, such as binary data including a plurality of zero's and one's as shown in 706, in turn includes a set of computer instructions 704 configured to operate according to one or more of the principles set forth herein. In one such embodiment 700, the processor-executable computer instructions 704 may be configured to perform a method 702, such as the method 200 of FIG. 2. In another embodiment, the processor-executable instructions 704 may be configured to implement a system, such as the backend system 110 or the remote system 120 of FIG. 1. Many such computer-readable media may be devised by those of ordinary skill in the art that are configured to operate in accordance with the techniques presented herein.

As used in this application, the terms “component”, “module,” “system”, “interface”, and the like are generally intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, or a computer. By way of illustration, both an application running on a controller and the controller may be a component. One or more components residing within a process or thread of execution and a component may be localized on one computer or distributed between two or more computers.

Further, the claimed subject matter is implemented as a method, apparatus, or article of manufacture using programming or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. Of course, many modifications may be made to this configuration without departing from the scope or spirit of the claimed subject matter.

FIG. 8 and the following discussion provide a description of a suitable computing environment to implement embodiments of one or more of the provisions set forth herein. The operating environment of FIG. 8 is merely one example of a suitable operating environment and is not intended to suggest any limitation as to the scope of use or functionality of the operating environment. Example computing devices include, but are not limited to, personal computers, server computers, hand-held or laptop devices, mobile devices, such as mobile phones, Personal Digital Assistants (PDAs), media players, and the like, multiprocessor systems, consumer electronics, mini computers, mainframe computers, distributed computing environments that include any of the above systems or devices, etc.

Generally, embodiments are described in the general context of “computer readable instructions” being executed by one or more computing devices. Computer readable instructions may be distributed via computer readable media as will be discussed below. Computer readable instructions may be implemented as program modules, such as functions, objects, Application Programming Interfaces (APIs), data structures, and the like, that perform one or more tasks or implement one or more abstract data types. Typically, the functionality of the computer readable instructions are combined or distributed as desired in various environments.

FIG. 8 illustrates a system 800 including a computing device 812 configured to implement one or more embodiments provided herein. In one configuration, computing device 812 includes at least one processing unit 816 and memory 818. Depending on the exact configuration and type of computing device, memory 818 may be volatile, such as RAM, non-volatile, such as ROM, flash memory, etc., or a combination of the two. This configuration is illustrated in FIG. 8 by dashed line 814.

In other embodiments, device 812 includes additional features or functionality. For example, device 812 may include additional storage such as removable storage or non-removable storage, including, but not limited to, magnetic storage, optical storage, etc. Such additional storage is illustrated in FIG. 8 by storage 820. In one or more embodiments, computer readable instructions to implement one or more embodiments provided herein are in storage 820. Storage 820 may store other computer readable instructions to implement an operating system, an application program, etc. Computer readable instructions may be loaded in memory 818 for execution by processing unit 816, for example.

The term “computer readable media” as used herein includes computer storage media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions or other data. Memory 818 and storage 820 are examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which may be used to store the desired information and which may be accessed by device 812. Any such computer storage media is part of device 812.

The term “computer readable media” includes communication media. Communication media typically embodies computer readable instructions or other data in a “modulated data signal” such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” includes a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.

Device 812 includes input device(s) 824 such as keyboard, mouse, pen, voice input device, touch input device, infrared cameras, video input devices, or any other input device. Output device(s) 822 such as one or more displays, speakers, printers, or any other output device may be included with device 812. Input device(s) 824 and output device(s) 822 may be connected to device 812 via a wired connection, wireless connection, or any combination thereof. In one or more embodiments, an input device or an output device from another computing device may be used as input device(s) 824 or output device(s) 822 for computing device 812. Device 812 may include communication connection(s) 826 to facilitate communications with one or more other devices.

Although the subject matter has been described in language specific to structural features or methodological acts, it is to be understood that the subject matter of the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example embodiments.

Various operations of embodiments are provided herein. The order in which one or more or all of the operations are described should not be construed as to imply that these operations are necessarily order dependent. Alternative ordering will be appreciated based on this description. Further, not all operations may necessarily be present in each embodiment provided herein.

As used in this application, “or” is intended to mean an inclusive “or” rather than an exclusive “or”. Further, an inclusive “or” may include any combination thereof (e.g., A, B, or any combination thereof). In addition, “a” and “an” as used in this application are generally construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Additionally, at least one of A and B and/or the like generally means A or B or both A and B. Further, to the extent that “includes”, “having”, “has”, “with”, or variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising”.

Further, unless specified otherwise, “first”, “second”, or the like are not intended to imply a temporal aspect, a spatial aspect, an ordering, etc. Rather, such terms are merely used as identifiers, names, etc. for features, elements, items, etc. For example, a first channel and a second channel generally correspond to channel A and channel B or two different or two identical channels or the same channel. Additionally, “comprising”, “comprises”, “including”, “includes”, or the like generally means comprising or including, but not limited to.

It will be appreciated that various of the above-disclosed and other features and functions, or alternatives or varieties thereof, may be desirably combined into many other different systems, implementations, or applications. Also that various presently unforeseen or unanticipated alternatives, modifications, variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims. 

1. A system for providing a content driven interface, comprising: a storage component housing one or more programming data portions, wherein respective programming data portions are associated with programming data for one or more time intervals, program names, and corresponding source content provider information; a display component rendering one or more program suggestions based on a current time and one or more of the programming data portions, wherein respective program suggestions are rendered based such that corresponding source content provider information is hidden; a management component determining the current time and receiving a user selection of a program suggestion of the one or more program suggestions; and a communication component transmitting one or more signals based on the user selection of the program suggestion and corresponding source content provider information.
 2. The system of claim 1, comprising an application component receiving user profile data, wherein the storage component receives one or more of the programming data portions based on the user profile data.
 3. The system of claim 1, wherein the system is implemented within a set top box or a remote control.
 4. The system of claim 1, wherein one or more of the program suggestions includes a progress bar and a program name.
 5. The system of claim 1, wherein the communication component transmits a batch of one or more of the signals based on a current state of a media system.
 6. The system of claim 1, wherein the display component renders one or more controls associated with operation of a media system.
 7. The system of claim 6, wherein the display component renders one or more of the controls associated with the media system concurrently with one or more of the program suggestions.
 8. The system of claim 7, wherein the display component renders one or more of the controls associated with the media system in a control portion, wherein the display component renders one or more of the program suggestions in a program suggestion portion, wherein the program suggestion portion is rendered in an upper portion of a display of the display component and the control portion is rendered in a lower portion of the display.
 9. The system of claim 8, wherein the control portion and the program suggestion portion each occupy one half of the display.
 10. The system of claim 1, wherein the display component renders a first set of program suggestions based on a first category or a first genre for respective program suggestions.
 11. The system of claim 10, wherein the display component renders a second set of program suggestions based on a second category or a second genre for respective program suggestions in response to a user input.
 12. The system of claim 11, wherein the user input is a swipe gesture, a drag gesture, or a tap gesture.
 13. A method for providing a content driven interface, comprising: storing one or more programming data portions, wherein respective programming data portions are associated with programming data for one or more time intervals, program names, and corresponding source content provider information; determining a current time; rendering one or more program suggestions based on the current time and one or more of the programming data portions, wherein respective program suggestions are rendered based such that corresponding source content provider information is hidden; receiving a user selection of a program suggestion of the one or more program suggestions; and transmitting one or more signals based on the user selection of the program suggestion and corresponding source content provider information.
 14. The method of claim 13, wherein one or more of the program suggestions includes a progress bar and a program name.
 15. The method of claim 13, comprising transmitting a batch of one or more of the signals based on a current state of a media system.
 16. The method of claim 13, comprising rendering one or more controls associated with operation of a media system.
 17. The method of claim 16, comprising rendering one or more of the controls associated with the media system concurrently with one or more of the program suggestions.
 18. The method of claim 17, comprising rendering one or more of the controls associated with the media system in a control portion, rendering one or more of the program suggestions in a program suggestion portion, wherein the program suggestion portion is rendered in an upper portion of a display and the control portion is rendered in a lower portion of the display.
 19. The method of claim 18, wherein the control portion and the program suggestion portion each occupy one half of the display.
 20. A system for providing a content driven interface, comprising: a storage component housing one or more programming data portions, wherein respective programming data portions are associated with programming data for one or more time intervals, program names, and corresponding source content provider information; a display component rendering one or more program suggestions based on a current time and one or more of the programming data portions, wherein respective program suggestions are rendered based such that corresponding source content provider information is hidden; a management component receiving a user selection of a program suggestion of the one or more program suggestions; and a communication component transmitting one or more signals based on the user selection of the program suggestion and corresponding source content provider information, wherein the communication component may pause for a predetermined time period between transmission of one or more of the signals. 